The invention relates to communications busses of the type used to connect a digital computer to peripheral devices, and more particularly methods for increasing bus lengths.
A known type of communications bus is the SCSI bus, which obtains its name by complying with the Small Computer System Interface ("SCSI") standards of the American National Standards Institute, New York, N.Y., U.S.A., the latest version of which is designated ANSI X3T9.2/375R Rev. 10k.
Generally speaking, the SCSI standards specify the electrical, mechanical and logical characteristics of the SCSI bus, which is an eight or sixteen bit (or thirty two bit in an extended configuration) parallel input/output (I/O) bus. Up to a total of sixteen devices (including the computers) can be connected to the bus. The peripheral devices can include, for example, disk drives, tape drives, printers, compact disk read-only memories ("CD-ROM's"), and scanners.
The SCSI standards specify a distributive bus protocol, which facilitates information transfers between devices connected to the bus. Generally speaking, the bus protocol refers to the host computers on the bus as "initiators" and the peripheral devices on the bus as "targets". The initiators are capable of initiating operations on the bus, and the targets are capable of responding to the initiators to perform operations. The SCSI standards also specify an arbitration system, under which control of the bus is awarded to the device on the bus having the highest priority level of those contending for control.
The bus protocol includes an addressing scheme for identifying the initiators and targets, and specifies control signals used to control operation of the SCSI bus, and to establish communication links between the initiators and targets for information transfers on the bus.
The control signals are asserted over specified "lines" of the SCSI bus, and include, among others, the following:
1) BUSY or "BSY" (which, when asserted, indicates that the bus is in use, i.e., busy or not "free") PA1 2) REQUEST or "REQ" (which is used by a target to indicate a request for a data information transfer between the initiator and the target, i.e., when asserted by a target, the initiator is to accept data from the bus during an information-in-phase, or place data on the bus during an information-out-phase), PA1 3) ACKNOWLEDGE or "ACK" (which, when asserted, indicates that data information sent over the bus is valid, i.e., when asserted, the initiator has placed data information on the bus during an information-out-phase, or has accepted data from the bus during an information- in-phase).
In addition to the control lines, the initiators and targets use a bi-directional parallel DATA bus (i.e., DATA lines of the SCSI bus) to transfer data information. The DATA lines are also used to transfer SCSI ID codes that uniquely identify the devices on the SCSI bus, and specify their relative priority during arbitration.
A well known problem with the SCSI bus definition is its limitation on cable lengths. SCSI busses can be either "differential" or "single-ended". A single-ended configuration, in which the voltage on a single conductor determines the assertion or de-assertion of the signal, uses a cable limited to six meters in length for each signal line. A differential configuration, wherein the voltage difference between two conductors (referenced to ground) determines the assertion or deassertion of a signal, uses cables limited to 25 meters in length for each signal line.
It has been discovered that the cable length limitation is due to a problem to which the SCSI protocol is subject, known as "wired-or glitch." This problem will be discussed in the context of the BUSY line, thus the name "BUSY glitch."
To understand the "BUSY glitch", it is necessary to consider normal operation of the SCSI bus, when, for example, two or more devices attempt to gain access to the SCSI bus at the same time by arbitrating for its control. The devices do so by asserting the BUSY line of the bus. In accordance with the SCSI standards, which specify negative logic, the contending devices drive the BUSY line of a single-ended bus to a low voltage state ("LOW"), and assert selected other lines indicating the respective priority levels.
Since only one device can gain control of the SCSI bus at a time, the devices "losing" the arbitration will deassert the BUSY line, and thus drop off the bus. When they deassert the BUSY line, a current differential arises, which results in a voltage wavefront traveling the length of the line. When the wavefront reaches the other end, it is reflected back. This wavefront is called a BUSY glitch.
The wavefront is essentially a voltage pulse or "step". The voltage step can be of sufficient magnitude to cause a false high voltage state ("HIGH") on the BUSY line, i.e., using the negative logic of the SCSI standards, the line will falsely appear to be deasserted at any point along the line until the reflection reaches that point. The false or invalid deassertion of the BUSY signal can "fool" other devices on the bus into "believing" that the bus is free when it is not, thereby adversely affecting bus operation.
In order to avoid the adverse effects of the BUSY glitch, the SCSI standards contemplate that the devices on the SCSI bus should wait before they again seek control of the SCSI bus for a length of time after first detecting a BUSY glitch equal to that required for the waveform to make a round trip on the bus, which depends on the length of the bus. The specification refers to this length of time as the bus "settle time". The specification therefore limits the length of the bus cable to guarantee that a wired-or glitch will traverse twice the length of the cable within the "settle time" specified, assuming that signals propagate through the signal carriers in a cable at a typical speed of 1.6 ns/ft.
The SCSI bus was initially meant for coupling physically small computers with each other and with peripheral devices. The SCSI bus definition has since evolved into a higher performance interconnect, and is now being used in midrange computer applications supporting the interconnection of numerous devices. In such applications it is often desirable to interconnect computers and devices that are at significant distances from one another--potentially, in separate rooms. It is highly disadvantageous, however, to add the cost of expensive bus adapters to these systems in order to achieve the longer bus lengths necessary. The SCSI cable length limitation has thus become increasingly onerous.